(function(serverName, p1, p2) {
  // console.log('----2-----2-----', serverName, p1, p2);
  const process = require('process');

  return {
    /* 描述信息 */
    description: '创建工作条调用目录，默认添加对应server.[jt]s',
    defaultPath: 'server',
    includePath: ['compile'],
    // excludePath: ['node_modules', '.git', '.idea'],
    suffixMap: {
      useTypeScript(val) {
        return val === true ? {'.js': '.ts', '.jsx': '.tsx'} : null
      }
    },
    nameMap: {
      serverNameTm: '{serverName}',
      /*useTypeScript(val) {
        return val === true ? { '.jsx.': '.tsx.' } : null;
      }*/
    },
    prompt: [
      {
        type: 'path',
        name: 'toPath',
        message: '创建目录',
        default: '.'
      },
      {
        type: 'input',
        name: 'serverName',
        message: `调用的后台服务名称 比如'lpbtm': `,
        async before() {
          if (serverName) {
            return {
              default: serverName,
            }
          }
        },
        validate(value) {
          if (!value) {
            return `必填，etc: ${serverName || 'lpbtm'}`;
          }
          return true;
        }
      }, {
        type: 'number',
        name: 'delay',
        message: '工作条默认延迟时间: ',
        default: 10000,
        validate(value) {
          if (isNaN(value)) {
            return `输入一个数字`;
          }
          return true;
        }
      }, {
        type: 'input',
        name: 'appName',
        message: '项目名称: ',
        async before() {
          const res = process.cwd().match(/L[UW]\S+?_(\S+?)_\S*?[\/\\]*/);
          if (res) {
            return {
              default: res[1]
            }
          }
          return {};
        },
        validate(value) {
          if (!value) {
            return `必填，etc: lpbtmpc-r`;
          }
          return true;
        }
      }, {
        type: 'confirm',
        name: 'useTypeScript',
        message: '是否使用type-script: ',
        default: true,
      }],
  }
});